1. Technical Field
The present invention relates in general to the field of digital audio systems and in particular to systems which include MIDI synthesizers implemented utilizing a digital signal processor. Still more particularly, the present invention relates to a method and apparatus for simultaneously outputting both digital audio and MIDI synthesized music utilizing a single digital processor.
2. Description of the Related Art
MIDI, the "Musical Instrument Digital Interface" was established as a hardware and software specification which would make it possible to exchange information such as: musical notes, program changes, expression control, etc. between different musical instruments or other devices such as: sequencers, computers, lighting controllers, mixers, etc. This ability to transmit and receive data was originally conceived for live performances, although subsequent developments have had enormous impact in recording studios, audio and video production, and composition environments.
A standard for the MIDI interface has been prepared and published as a joint effort between the MIDI Manufacturer's Association (MMA) and the Japan MIDI Standards Committee (JMSC). This standard is subject to change by agreement between JMSC and MMA and is currently published as the MIDI 1.0 Detailed Specification, Document Version 4.1, January 1989.
The hardware portion of the MIDI interface operates at 31.25 KBaud, asynchronous, with a start bit, eight data bits and a stop bit. This makes a total of ten bits for a period of 320 microseconds per serial byte. The start bit is a logical zero and the stop bit is a logical one. Bytes are transmitted by sending the least significant bit first. Data bits are transmitted in the MIDI interface by utilizing a five milliamp current loop. A logical zero is represented by the current being turned on and a logical one is represented by the current being turned off. Rise times and fall times for this current loop shall be less than two microseconds. A five pin DIN connector is utilized to provide a connection for this current loop with only two pins being utilized to transmit the current loop signal. Typically, an opto-isolater is utilized to provide isolation between devices which are coupled together utilizing a MIDI format.
Communication utilizing the MIDI interface is achieved through multi-byte "messages" which consist of one status byte followed by one or two data bytes. There are certain exceptions to this rule. MIDI messages are sent over any of sixteen channels which may be utilized for a variety of performance information. There are five major types of MIDI messages: Channel Voice; Channel Mode; System Common; System Real-Time; and, System Exclusive. A MIDI event is transmitted as a message and consists of one or more bytes.
A channel message in the MIDI system utilizes four bits in the status byte to address the message to one of sixteen MIDI channels and four bits to define the message. Channel messages are thereby intended for the receivers in a system whose channel number matches the channel number encoded in the status byte. An instrument may receive a MIDI message on more than one channel. The channel in which it receives its main instructions, such as which program number to be on and what mode to be in, is often referred to as its "Basic Channel." There are two basic types of channel messages, a Voice message and a Mode message. A Voice message is utilized to control an instrument's voices and Voice messages are typically sent over voice channels. A Mode message is utilized to define the instrument's response to Voice messages, Mode messages are generally sent over the instrument's Basic Channel.
System messages within the MIDI system may include Common messages, Real-Time messages, and Exclusive messages. Common messages are intended for all receivers in a system regardless of the channel that receiver is associated with. Real-Time messages are utilized for synchronization and are intended for all clock based units in a system. Real-Time messages contain status bytes only, and do not include data bytes. Real-Time messages may be sent at any time, even between bytes of a message which has a different status. Exclusive messages may contain any number of data bytes and can be terminated either by an end of exclusive or any other status byte, with the exception of Real-Time messages. An end of exclusive should always be sent at the end of a system exclusive message. System exclusive messages always include a manufacturer's identification code. If a receiver does not recognize the identification code it will ignore the following data.
As those skilled in the art will appreciate upon reference to the foregoing, musical compositions may be encoded utilizing the MIDI standard and stored and/or transmitted utilizing substantially less data. The MIDI standard permits the transmittal of a serial listing of program status messages and channel messages, such as "note on" and "note off" and as a consequence require substantially less digital data to encode than the straightforward digitization of an analog music signal.
Earlier attempts at integrating music and other analog forms of communication, such as speech, into the digital computer area have traditionally involved the sampling of an analog signal at a sufficiently high frequency to ensure that the highest frequency present within the signal will be captured (the "Nyquist rate") and the subsequent digitization of those samples for storage. The data rate required for such simple sampling systems can be quite enormous with several tens of thousands of bits of data being required for each second of audio signal.
As a consequence, many different encoding systems have been developed to decrease the amount of data required in such systems. For example, many modern digital audio systems utilize pulse code modulation (PCM) which employs a variation of a digital signal to represent analog information. Such systems may utilize pulse amplitude modulation (PAM), pulse duration modulation (PDM) or pulse position modulation (PPM) to represent variations in an analog signal.
One variation of pulse code modulation, Delta Pulse Code Modulation (DPCM) achieves still further data compression by encoding only the difference between one sample and the next sample. Thus, despite the fact that an analog signal may have a substantial dynamic range, if the sampling rate is sufficiently high so that adjacent signals do not differ greatly, encoding only the difference between two adjacent signals can save substantial data. Further, adaptive or predictive techniques are often utilized to further decrease the amount of data necessary to represent an analog signal by attempting to predict the value of a signal based upon a weighted sum of previous signals or by some similar algorithm.
In each of these digital audio techniques speech or an audio signal may be sampled and digitized utilizing straightforward processing and digital-to-analog or analog-to-digital conversion techniques to store or recreate the signal.
While the aforementioned digital audio systems may be utilized to accurately store speech or other audio signal samples a substantial penalty in data rates must be paid in order to achieve accurate results over that which may be achieved in the music world with the MIDI system described above. However, in systems wherein it is desired to recreate human speech there exists no appropriate alternative in the MIDI system for the reproduction of human speech.
Thus, it should be apparent that a need exists for a method and apparatus whereby certain digitized audio samples, such as human speech, may be recreated and combined with synthesized music which was created or recreated utilizing a MIDI data file.
Further, it would be extremely advantageous to be able to accomplish this task with a single digital processor.